home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_c39.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  87.3 KB  |  2,647 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:CALL_1_C.arguments*/
  10. T0* r492add_comment(T492* C,T0* a1){
  11. T0* R=NULL;
  12. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  13. R=(T0*)C;
  14. }
  15. else {
  16. {T529*n=malloc(sizeof(*n));
  17. *n=M529;
  18. r529make(n,(T0*)C,a1);
  19. R=(T0*)n;
  20. }
  21. }
  22. /*FI*/return R;
  23. }
  24. int r492to_integer(T492* C){
  25. int R=0;
  26. r492error(r492start_position(C),((T0*)ms69_470));
  27. return R;
  28. }
  29. int r492is_a(T492* C,T0* a1){
  30. int R=0;
  31. R=X291is_a(X291run_type((((T492*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  32. /*IF*/if (!(R)) {
  33. r683add_position(r492start_position(C));
  34. r492error(X662start_position(a1),((T0*)ms4_662));
  35. }
  36. /*FI*/return R;
  37. }
  38. /*No:CALL_1_C.is_current*/
  39. void r492mapping_c_arg(T492* C,T0* a1){
  40. T0* _actual_type=NULL;
  41. _actual_type=X291run_type((((T492*)C))->_result_type/*24*/);
  42. /*IF*/if (X291is_reference(_actual_type)) {
  43. /*IF*/if (X291is_reference(a1)) {
  44. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  45. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  46. }/*]*/
  47. /*]*/
  48. }
  49. else {
  50. X291to_expanded(_actual_type);
  51. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  52. char b1='\50';
  53. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  54. }/*]*/
  55. /*]*/
  56. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  57. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  58. }/*]*/
  59. /*]*/
  60. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  61. char b1='\51';
  62. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  63. }/*]*/
  64. /*]*/
  65. }
  66. /*FI*/}
  67. else {
  68. /*IF*/if (X291is_reference(a1)) {
  69. X291to_reference(_actual_type);
  70. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  71. char b1='\50';
  72. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  73. }/*]*/
  74. /*]*/
  75. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  76. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  77. }/*]*/
  78. /*]*/
  79. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  80. char b1='\51';
  81. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  82. }/*]*/
  83. /*]*/
  84. }
  85. else {
  86. /*IF*/if (X291need_c_struct(a1)) {
  87. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  88. char b1='\46';
  89. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  90. }/*]*/
  91. /*]*/
  92. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  93. char b1='\50';
  94. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  95. }/*]*/
  96. /*]*/
  97. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  98. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  99. }/*]*/
  100. /*]*/
  101. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  102. char b1='\51';
  103. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  104. }/*]*/
  105. /*]*/
  106. }
  107. else {
  108. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  109. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  110. }/*]*/
  111. /*]*/
  112. }
  113. /*FI*/}
  114. /*FI*/}
  115. /*FI*/}
  116. /*No:CALL_1_C.static_value*/
  117. void r492make(T492* C,T0* a1,T0* a2,T0* a3){
  118. C->_target=a1;
  119. C->_feature_name=a2;
  120. C->_arguments=a3;
  121. }
  122. void r492mapping_c_target(T492* C,T0* a1){
  123. T0* _actual_type=NULL;
  124. int _flag=0;
  125. _flag=r324call_invariant_start(a1);
  126. _actual_type=X291run_type((((T492*)C))->_result_type/*24*/);
  127. /*IF*/if (X291is_reference(_actual_type)) {
  128. /*IF*/if (X291is_reference(a1)) {
  129. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  130. char b1='\50';
  131. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  132. }/*]*/
  133. /*]*/
  134. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  135. char b1='\50';
  136. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  137. }/*]*/
  138. /*]*/
  139. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  140. char b1='T';
  141. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  142. }/*]*/
  143. /*]*/
  144. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  145. /*]*/
  146. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  147. char b1='\52';
  148. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  149. }/*]*/
  150. /*]*/
  151. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  152. char b1='\51';
  153. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  154. }/*]*/
  155. /*]*/
  156. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  157. char b1='\50';
  158. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  159. }/*]*/
  160. /*]*/
  161. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  162. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  163. }/*]*/
  164. /*]*/
  165. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  166. char b1='\51';
  167. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  168. }/*]*/
  169. /*]*/
  170. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  171. char b1='\51';
  172. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  173. }/*]*/
  174. /*]*/
  175. }
  176. else {
  177. X291to_expanded(_actual_type);
  178. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  179. char b1='\50';
  180. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  181. }/*]*/
  182. /*]*/
  183. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  184. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  185. }/*]*/
  186. /*]*/
  187. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  188. char b1='\51';
  189. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  190. }/*]*/
  191. /*]*/
  192. }
  193. /*FI*/}
  194. else {
  195. /*IF*/if (X291is_reference(a1)) {
  196. X291to_reference(_actual_type);
  197. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  198. char b1='\50';
  199. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  200. }/*]*/
  201. /*]*/
  202. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  203. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  204. }/*]*/
  205. /*]*/
  206. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  207. char b1='\51';
  208. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  209. }/*]*/
  210. /*]*/
  211. }
  212. else {
  213. /*IF*/if (X291need_c_struct(a1)) {
  214. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  215. char b1='\46';
  216. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  217. }/*]*/
  218. /*]*/
  219. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  220. char b1='\50';
  221. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  222. }/*]*/
  223. /*]*/
  224. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  225. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  226. }/*]*/
  227. /*]*/
  228. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  229. char b1='\51';
  230. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  231. }/*]*/
  232. /*]*/
  233. }
  234. else {
  235. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T492* C1=C;
  236. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  237. }/*]*/
  238. /*]*/
  239. }
  240. /*FI*/}
  241. /*FI*/}
  242. /*FI*//*IF*/if (_flag) {
  243. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  244. char b1='\51';
  245. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  246. }/*]*/
  247. /*]*/
  248. }
  249. /*FI*/}
  250. /*No:CALL_1_C.nb_errors*/
  251. /*No:CALL_1_C.feature_name*/
  252. /*No:CALL_1_C.fz_iinaiv*/
  253. /*No:CALL_1_C.arg_count*/
  254. /*No:CALL_1_C.dca_inline_argument*/
  255. /*No:CALL_1_C.run_feature*/
  256. /*No:CALL_1_C.call_proc_call_c2c*/
  257. T0* r492start_position(T492* C){
  258. T0* R=NULL;
  259. R=X776start_position((((T492*)C))->_feature_name/*16*/);
  260. return R;
  261. }
  262. /*No:CALL_1_C.target*/
  263. /*No:CALL_1_C.compile_to_c*/
  264. /*No:CALL_1_C.c_simple*/
  265. T0* r492to_runnable(T492* C,T0* a1){
  266. T0* R=NULL;
  267. T0* _tla=NULL;
  268. T0* _a=NULL;
  269. /*IF*/if (((((T492*)C))->_current_type/*8*/)==((void*)(NULL))) {
  270. r492to_runnable_0(C,a1);
  271. _a=X431to_runnable((((T492*)C))->_arguments/*28*/,a1);
  272. /*IF*/if ((_a)==((void*)(NULL))) {
  273. r492error(X662start_position(r492arg1(C)),((T0*)ms55_470));
  274. }
  275. else {
  276. C->_arguments=_a;
  277. }
  278. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  279. X431match_with((((T492*)C))->_arguments/*28*/,(((T492*)C))->_run_feature/*20*/);
  280. }
  281. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  282. _tla=(((T492*)C))->_result_type/*24*/;
  283. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  284. case 239: 
  285. break;
  286. default:
  287. _tla=NULL;
  288. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  289. C->_result_type=X291run_type(X662result_type(r492arg1(C)));
  290. }
  291. /*FI*/}
  292. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  293. R=(T0*)C;
  294. }
  295. /*FI*/}
  296. else {
  297. R=r492twin(C);
  298. /*[IRF3.3set_current_type*/((((T492*)(((T492*)R))))->_current_type)=(NULL);
  299. /*]*/
  300. R=r492to_runnable(((T492*)R),a1);
  301. }
  302. /*FI*/return R;
  303. }
  304. /*No:CALL_1_C.result_type*/
  305. /*No:CALL_1_C.is_result*/
  306. T0* r492twin(T492* C){
  307. T0* R=NULL;
  308. R=malloc(sizeof(*C));
  309. *((T492*)R)=*C;
  310. return R;
  311. }
  312. /*No:CALL_1_C.set_current_type*/
  313. /*No:CALL_1_C.is_static*/
  314. int r492call_is_static(T492* C){
  315. int R=0;
  316. T0* _rf=NULL;
  317. T0* _running=NULL;
  318. T0* _rc=NULL;
  319. /*IF*/if (((((T492*)C))->_run_feature/*20*/)!=((void*)(NULL))) {
  320. _rc=X496run_class((((T492*)C))->_run_feature/*20*/);
  321. /*IF*/if ((_rc)!=((void*)(NULL))) {
  322. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  323. /*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))==(1))) {
  324. _rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),(((T492*)C))->_run_feature/*20*/);
  325. /*IF*/if (X496is_static(_rf)) {
  326. C->_static_value_mem=X496static_value_mem(_rf);
  327. R=1;
  328. }
  329. /*FI*/}
  330. /*FI*/}
  331. /*FI*/}
  332. /*FI*/return R;
  333. }
  334. /*No:CALL_1_C.fz_07*/
  335. /*No:CALL_1_C.can_be_dropped*/
  336. /*No:CALL_1_C.current_type*/
  337. void r492compile_to_c_old(T492* C){
  338. X662compile_to_c_old((((T492*)C))->_target/*12*/);
  339. /*IF*/{/*AT*/X431compile_to_c_old((((T492*)C))->_arguments/*28*/);
  340. }
  341. /*FI*/}
  342. /*No:CALL_1_C.static_value_mem*/
  343. /*No:CALL_1_C.is_manifest_string*/
  344. /*No:CALL_1_C.is_void*/
  345. void r492to_runnable_0(T492* C,T0* a1){
  346. C->_current_type=a1;
  347. r492cpc_to_runnable(C,a1);
  348. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T492*)C))->_run_feature/*20*/))))->_result_type/*24*/);
  349. /*IF*/if (((((T492*)C))->_result_type/*24*/)==((void*)(NULL))) {
  350. r683add_position(X496start_position((((T492*)C))->_run_feature/*20*/));
  351. r492error(X776start_position((((T492*)C))->_feature_name/*16*/),((T0*)ms1_295));
  352. }
  353.  else if (X291is_like_current((((T492*)C))->_result_type/*24*/)) {
  354. C->_result_type=X662result_type((((T492*)C))->_target/*12*/);
  355. }
  356. /*FI*/}
  357. /*No:CALL_1_C.is_pre_computable*/
  358. void r492cpc_to_runnable(T492* C,T0* a1){
  359. T0* _rc=NULL;
  360. T0* _t=NULL;
  361. _t=X662to_runnable((((T492*)C))->_target/*12*/,a1);
  362. /*IF*/if ((_t)==((void*)(NULL))) {
  363. r683add_position(X662start_position((((T492*)C))->_target/*12*/));
  364. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  365. r683fatal_error(((T683*)(oBC364eh)),b1);
  366. }/*]*/
  367. }
  368. /*FI*/C->_target=_t;
  369. _rc=X291run_class(X662result_type((((T492*)C))->_target/*12*/));
  370. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  371. r576update((((T492*)C))->_target/*12*/,(((T492*)C))->_run_feature/*20*/);
  372. }
  373. int r492use_current(T492* C){
  374. int R=0;
  375. /*IF*/{/*AT*/R=X431use_current((((T492*)C))->_arguments/*28*/);
  376. }
  377. /*FI*//*IF*/if (R) {
  378. }
  379.  else if (X662is_current((((T492*)C))->_target/*12*/)) {
  380. R=X496use_current((((T492*)C))->_run_feature/*20*/);
  381. }
  382. else {
  383. R=X662use_current((((T492*)C))->_target/*12*/);
  384. }
  385. /*FI*/return R;
  386. }
  387. void r492finalize(T492* C){
  388. T0* _rf=NULL;
  389. T0* _rc=NULL;
  390. _rf=(((T492*)C))->_run_feature/*20*/;
  391. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  392. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  393. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  394. C->_run_feature=_rf;
  395. }
  396. /*FI*/}
  397. void r492error(T0* a1,T0* a2){
  398. r683add_position(a1);
  399. r683error(((T683*)(oBC364eh)),a2);
  400. }
  401. /*No:CALL_1_C.isa_dca_inline_argument*/
  402. /*No:CALL_1_C.fatal_error*/
  403. /*No:CALL_1_C.fz_bad_argument*/
  404. T0* r492arg1(T492* C){
  405. T0* R=NULL;
  406. R=X431first((((T492*)C))->_arguments/*28*/);
  407. return R;
  408. }
  409. void r492afd_check(T492* C){
  410. T0* _running=NULL;
  411. T0* _rc=NULL;
  412. _rc=X291run_class(X662result_type((((T492*)C))->_target/*12*/));
  413. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  414. /*IF*/if ((_running)==((void*)(NULL))) {
  415. r683add_position(X662start_position((((T492*)C))->_target/*12*/));
  416. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  417. r7append(((T7*)(oBC683explanation)),b1);
  418. }/*]*/
  419. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  420. r7append(((T7*)(oBC683explanation)),b1);
  421. }/*]*/
  422. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  423. r7append(((T7*)(oBC683explanation)),b1);
  424. }/*]*/
  425. r683print_as_warning(((T683*)(oBC364eh)));
  426. r355set_at_run_time(((T355*)_rc));
  427. }
  428.  else if ((r396count(((T396*)_running)))>(0)) {
  429. r576update((((T492*)C))->_target/*12*/,(((T492*)C))->_run_feature/*20*/);
  430. }
  431. /*FI*/X662afd_check((((T492*)C))->_target/*12*/);
  432. /*IF*/{/*AT*/X431afd_check((((T492*)C))->_arguments/*28*/);
  433. }
  434. /*FI*/}
  435. T0* r126add_comment(T126* C,T0* a1){
  436. T0* R=NULL;
  437. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  438. R=(T0*)C;
  439. }
  440. /*AF*/else {
  441. {T46*n=malloc(sizeof(*n));
  442. *n=M46;
  443. r46make(n,(T0*)C,a1);
  444. R=(T0*)n;
  445. }
  446. }
  447. /*FI*/return R;
  448. }
  449. void r126make(T126* C,T0* a1,T0* a2){
  450. C->_left_side=a1;
  451. C->_right_side=a2;
  452. }
  453. /*No:REVERSE_ASSIGNMENT.nb_errors*/
  454. T0* r126start_position(T126* C){
  455. T0* R=NULL;
  456. R=X662start_position((((T126*)C))->_left_side/*8*/);
  457. return R;
  458. }
  459. void r126compile_to_c(T126* C){
  460. int _i=0;
  461. T0* _run=NULL;
  462. /*IF*/if (X291is_expanded(X291run_type(r126right_type(C)))) {
  463. r683add_position(r126start_position(C));
  464. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_126);
  465. r683fatal_error(((T683*)(oBC364eh)),b1);
  466. }/*]*/
  467. }
  468. /*FI*/_run=(((T355*)((T355*)(X291run_class(r126left_type(C))))))->_running/*12*/;
  469. /*IF*/if (((_run)==((void*)(NULL)))||(r396empty(((T396*)_run)))) {
  470. X662compile_to_c((((T126*)C))->_left_side/*8*/);
  471. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_126));
  472. /*]*/
  473. }
  474. else {
  475. X662compile_to_c((((T126*)C))->_left_side/*8*/);
  476. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  477. char b1='\75';
  478. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  479. }/*]*/
  480. /*]*/
  481. /*IF*/if (X662is_current((((T126*)C))->_right_side/*12*/)) {
  482. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms85_470));
  483. /*]*/
  484. }
  485. /*FI*/X662compile_to_c((((T126*)C))->_right_side/*12*/);
  486. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_126));
  487. /*]*/
  488. X662compile_to_c((((T126*)C))->_left_side/*8*/);
  489. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_126));
  490. /*]*/
  491. X662compile_to_c((((T126*)C))->_left_side/*8*/);
  492. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_126));
  493. /*]*/
  494. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms6_126));
  495. /*]*/
  496. _i=(((T396*)((T396*)_run)))->_lower/*12*/;
  497. while (!((_i)>((((T396*)((T396*)_run)))->_upper/*8*/))) {
  498. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms7_126));
  499. /*]*/
  500. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T355*)((T355*)(r396item(((T396*)_run),_i)))))->_id/*4*/);
  501. /*]*/
  502. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms8_126));
  503. /*]*/
  504. _i=(_i)+(1);
  505. }
  506. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms9_126));
  507. /*]*/
  508. X662compile_to_c((((T126*)C))->_left_side/*8*/);
  509. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_126));
  510. /*]*/
  511. }
  512. /*FI*/}
  513. T0* r126to_runnable(T126* C,T0* a1){
  514. T0* R=NULL;
  515. T0* _e=NULL;
  516. /*IF*/if (((((T126*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  517. C->_run_compound=a1;
  518. _e=X662to_runnable((((T126*)C))->_left_side/*8*/,r126current_type(C));
  519. /*IF*/if ((_e)==((void*)(NULL))) {
  520. r126error(X662start_position((((T126*)C))->_left_side/*8*/),((T0*)ms62_470));
  521. }
  522. else {
  523. C->_left_side=_e;
  524. }
  525. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  526. _e=X662to_runnable((((T126*)C))->_right_side/*12*/,r126current_type(C));
  527. /*IF*/if ((_e)==((void*)(NULL))) {
  528. r126error(X662start_position((((T126*)C))->_right_side/*12*/),((T0*)ms63_470));
  529. }
  530. else {
  531. C->_right_side=_e;
  532. }
  533. /*FI*/}
  534. /*FI*//*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&(X291is_a(X291run_type(r126right_type(C)),X291run_type(r126left_type(C))))) {
  535. /*IF*/if ((!(X662is_current((((T126*)C))->_right_side/*12*/)))&&(!(X291is_like_current(r126left_type(C))))) {
  536. r683add_type(r126right_type(C),((T0*)ms12_126));
  537. r683add_type(r126left_type(C),((T0*)ms13_126));
  538. r126warning(r126start_position(C),((T0*)ms14_126));
  539. }
  540. /*FI*/}
  541. /*FI*//*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  542. /*]*/
  543. r38clear(((T38*)(oBC683positions)));
  544. /*]*/
  545. /*IF*/if (!(X291is_reference(X291run_type(r126left_type(C))))) {
  546. r683add_type(X291run_type(r126left_type(C)),((T0*)ms15_126));
  547. r126error(r126start_position(C),((T0*)ms16_126));
  548. }
  549. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  550. R=(T0*)C;
  551. }
  552. /*FI*/}
  553. else {
  554. {T126*n=malloc(sizeof(*n));
  555. *n=M126;
  556. r126make(n,(((T126*)C))->_left_side/*8*/,(((T126*)C))->_right_side/*12*/);
  557. R=(T0*)n;
  558. }
  559. R=r126to_runnable(((T126*)R),a1);
  560. }
  561. /*FI*/return R;
  562. }
  563. T0* r126right_type(T126* C){
  564. T0* R=NULL;
  565. R=X662result_type((((T126*)C))->_right_side/*12*/);
  566. return R;
  567. }
  568. /*No:REVERSE_ASSIGNMENT.left_side*/
  569. T0* r126current_type(T126* C){
  570. T0* R=NULL;
  571. /*IF*/if (((((T126*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  572. R=(((T592*)((T592*)((((T126*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  573. }
  574. /*FI*/return R;
  575. }
  576. /*No:REVERSE_ASSIGNMENT.run_compound*/
  577. /*No:REVERSE_ASSIGNMENT.is_pre_computable*/
  578. /*No:REVERSE_ASSIGNMENT.fz_cast_t0_star*/
  579. int r126use_current(T126* C){
  580. int R=0;
  581. /*IF*/if (X662use_current((((T126*)C))->_left_side/*8*/)) {
  582. R=1;
  583. }
  584. else {
  585. R=X662use_current((((T126*)C))->_right_side/*12*/);
  586. }
  587. /*FI*/return R;
  588. }
  589. /*No:REVERSE_ASSIGNMENT.right_side*/
  590. /*No:REVERSE_ASSIGNMENT.fz_blhsoa*/
  591. /*No:REVERSE_ASSIGNMENT.fz_brhsoa*/
  592. void r126error(T0* a1,T0* a2){
  593. r683add_position(a1);
  594. r683error(((T683*)(oBC364eh)),a2);
  595. }
  596. /*No:REVERSE_ASSIGNMENT.fatal_error*/
  597. /*No:REVERSE_ASSIGNMENT.end_mark_comment*/
  598. void r126afd_check(T126* C){
  599. X662afd_check((((T126*)C))->_right_side/*12*/);
  600. }
  601. T0* r126left_type(T126* C){
  602. T0* R=NULL;
  603. R=X662result_type((((T126*)C))->_left_side/*8*/);
  604. return R;
  605. }
  606. void r126warning(T0* a1,T0* a2){
  607. r683add_position(a1);
  608. r683warning(((T683*)(oBC364eh)),a2);
  609. }
  610. int r542affect(T542* C,T0* a1){
  611. int R=0;
  612. /*IF*/if (/*(IRF4.7for_all*/((((T542*)C))->_list/*4*/)==(NULL)/*)*/) {
  613. R=1;
  614. }
  615. else {
  616. R=r953has(((T953*)((((T542*)C))->_list/*4*/)),a1);
  617. }
  618. /*FI*/return R;
  619. }
  620. void r542make_all(T542* C,T0* a1){
  621. C->_clients=a1;
  622. C->_list=NULL;
  623. }
  624. void r542make(T542* C,T0* a1,T0* a2){
  625. C->_clients=a1;
  626. {T953*n=malloc(sizeof(*n));
  627. *n=M953;
  628. r953make(n,a2);
  629. C->_list=(T0*)n;
  630. }
  631. }
  632. /*No:EXPORT_ITEM.list*/
  633. /*No:EXPORT_ITEM.clients*/
  634. /*No:EXPORT_ITEM.for_all*/
  635. /*No:E_INSPECT.else_position*/
  636. T0* r270add_comment(T270* C,T0* a1){
  637. T0* R=NULL;
  638. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  639. R=(T0*)C;
  640. }
  641.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  642. R=(T0*)C;
  643. }
  644. else {
  645. {T46*n=malloc(sizeof(*n));
  646. *n=M46;
  647. r46make(n,(T0*)C,a1);
  648. R=(T0*)n;
  649. }
  650. }
  651. /*FI*/}
  652. /*FI*/return R;
  653. }
  654. /*No:E_INSPECT.when_list*/
  655. /*No:E_INSPECT.fz_else*/
  656. void r270add_when(T270* C,T0* a1){
  657. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  658. {T377*n=malloc(sizeof(*n));
  659. *n=M377;
  660. /*[IRF3.3make*/((((T377*)(n)))->_list)=(se_ma147(1,a1));
  661. /*]*/
  662. C->_when_list=(T0*)n;
  663. }
  664. }
  665. else {
  666. /*[IRF3.5add_last*/r147add_last(((T147*)((((T377*)((T377*)((((T270*)C))->_when_list/*16*/))))->_list/*4*/)),a1);
  667. /*]*/
  668. }
  669. /*FI*/}
  670. void r270make(T270* C,T0* a1,T0* a2){
  671. C->_start_position=a1;
  672. C->_expression=a2;
  673. }
  674. /*No:E_INSPECT.nb_errors*/
  675. /*No:E_INSPECT.expression*/
  676. void r270set_else_compound(T270* C,T0* a1,T0* a2){
  677. C->_else_position=a1;
  678. C->_else_compound=a2;
  679. }
  680. /*No:E_INSPECT.set_run_compound*/
  681. /*No:E_INSPECT.start_position*/
  682. void r270compile_to_c(T270* C){
  683. r324inspect_incr(((T324*)(oBC364cpp)));
  684. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_270));
  685. /*]*/
  686. r324put_inspect(((T324*)(oBC364cpp)));
  687. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  688. char b1='\75';
  689. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  690. }/*]*/
  691. /*]*/
  692. X662compile_to_c((((T270*)C))->_expression/*12*/);
  693. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  694. /*]*/
  695. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  696. /*IF*/if (((((T270*)C))->_else_position/*20*/)==((void*)(NULL))) {
  697. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  698. r324put_error1(((T324*)(oBC364cpp)),((T0*)ms6_270),(((T270*)C))->_start_position/*8*/);
  699. }
  700. /*FI*/}
  701.  else if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  702. r592compile_to_c(((T592*)((((T270*)C))->_else_compound/*24*/)));
  703. }
  704. /*FI*/}
  705. else {
  706. r377compile_to_c(((T377*)((((T270*)C))->_when_list/*16*/)),(((T270*)C))->_else_position/*20*/);
  707. /*IF*/if (((((T270*)C))->_else_position/*20*/)==((void*)(NULL))) {
  708. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  709. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  710. char b1='\40';
  711. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  712. }/*]*/
  713. /*]*/
  714. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_470));
  715. /*]*/
  716. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  717. char b1='\173';
  718. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  719. }/*]*/
  720. /*]*/
  721. r324put_error1(((T324*)(oBC364cpp)),((T0*)ms6_270),(((T270*)C))->_start_position/*8*/);
  722. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  723. char b1='\175';
  724. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  725. }/*]*/
  726. /*]*/
  727. }
  728. /*FI*/}
  729.  else if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  730. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  731. char b1='\40';
  732. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  733. }/*]*/
  734. /*]*/
  735. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms10_470));
  736. /*]*/
  737. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  738. char b1='\173';
  739. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  740. }/*]*/
  741. /*]*/
  742. r592compile_to_c(((T592*)((((T270*)C))->_else_compound/*24*/)));
  743. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  744. char b1='\175';
  745. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  746. }/*]*/
  747. /*]*/
  748. }
  749. /*FI*/}
  750. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
  751. /*]*/
  752. r324inspect_decr(((T324*)(oBC364cpp)));
  753. }
  754. /*No:E_INSPECT.fz_00*/
  755. /*No:E_INSPECT.includes*/
  756. T0* r270to_runnable(T270* C,T0* a1){
  757. T0* R=NULL;
  758. T0* _wl=NULL;
  759. T0* _te=NULL;
  760. T0* _e=NULL;
  761. /*IF*/if (((((T270*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  762. C->_run_compound=a1;
  763. _e=X662to_runnable((((T270*)C))->_expression/*12*/,r270current_type(C));
  764. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  765. C->_expression=_e;
  766. _te=X291run_type(X662result_type(_e));
  767. }
  768. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  769. /*IF*/if (X291is_character(_te)) {
  770. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  771. C->_when_list=r377to_runnable_character(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
  772. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  773. r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
  774. }
  775. /*FI*/}
  776. /*FI*/}
  777.  else if (X291is_integer(_te)) {
  778. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  779. C->_when_list=r377to_runnable_integer(((T377*)((((T270*)C))->_when_list/*16*/)),(T0*)C);
  780. /*IF*/if (((((T270*)C))->_when_list/*16*/)==((void*)(NULL))) {
  781. r270error((((T270*)C))->_start_position/*8*/,((T0*)ms5_270));
  782. }
  783. /*FI*/}
  784. /*FI*/}
  785. else {
  786. /*[IRF3.6append*/{T0* b1=((T0*)ms2_270);
  787. r7append(((T7*)(oBC683explanation)),b1);
  788. }/*]*/
  789. r683add_type(_te,((T0*)ms3_270));
  790. r683add_position((((T270*)C))->_start_position/*8*/);
  791. r683print_as_error(((T683*)(oBC364eh)));
  792. }
  793. /*FI*/}
  794. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  795. C->_else_compound=r592to_runnable(((T592*)((((T270*)C))->_else_compound/*24*/)),r270current_type(C));
  796. }
  797. /*FI*/R=(T0*)C;
  798. }
  799. else {
  800. R=r270twin(C);
  801. {T377*n=malloc(sizeof(*n));
  802. *n=M377;
  803. r377from_when_list(n,(((T270*)C))->_when_list/*16*/);
  804. _wl=(T0*)n;
  805. }
  806. /*[IRF3.3set_when_list*/((((T270*)(((T270*)R))))->_when_list)=(_wl);
  807. /*]*/
  808. /*[IRF3.3set_run_compound*/((((T270*)(((T270*)R))))->_run_compound)=(NULL);
  809. /*]*/
  810. R=r270to_runnable(((T270*)R),a1);
  811. }
  812. /*FI*/return R;
  813. }
  814. /*No:E_INSPECT.fz_12*/
  815. T0* r270twin(T270* C){
  816. T0* R=NULL;
  817. R=malloc(sizeof(*C));
  818. *((T270*)R)=*C;
  819. return R;
  820. }
  821. /*No:E_INSPECT.em1*/
  822. /*No:E_INSPECT.em2*/
  823. /*No:E_INSPECT.else_compound*/
  824. /*No:E_INSPECT.set_when_list*/
  825. T0* r270current_type(T270* C){
  826. T0* R=NULL;
  827. /*IF*/if (((((T270*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  828. R=(((T592*)((T592*)((((T270*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  829. }
  830. /*FI*/return R;
  831. }
  832. /*No:E_INSPECT.run_compound*/
  833. /*No:E_INSPECT.is_pre_computable*/
  834. int r270use_current(T270* C){
  835. int R=0;
  836. R=(R)||(X662use_current((((T270*)C))->_expression/*12*/));
  837. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  838. R=(R)||(r377use_current(((T377*)((((T270*)C))->_when_list/*16*/))));
  839. }
  840. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  841. R=(R)||(r592use_current(((T592*)((((T270*)C))->_else_compound/*24*/))));
  842. }
  843. /*FI*/return R;
  844. }
  845. void r270error(T0* a1,T0* a2){
  846. r683add_position(a1);
  847. r683error(((T683*)(oBC364eh)),a2);
  848. }
  849. /*No:E_INSPECT.end_mark_comment*/
  850. void r270afd_check(T270* C){
  851. X662afd_check((((T270*)C))->_expression/*12*/);
  852. /*IF*/if (((((T270*)C))->_when_list/*16*/)!=((void*)(NULL))) {
  853. r377afd_check(((T377*)((((T270*)C))->_when_list/*16*/)));
  854. }
  855. /*FI*//*IF*/if (((((T270*)C))->_else_compound/*24*/)!=((void*)(NULL))) {
  856. r592afd_check(((T592*)((((T270*)C))->_else_compound/*24*/)));
  857. }
  858. /*FI*/}
  859. /*No:ONCE_FUNCTION.arguments*/
  860. T0* r844try_to_undefine(T844* C,T0* a1,T0* a2){
  861. T0* R=NULL;
  862. X776undefine_in(a1,a2);
  863. R=r844try_to_undefine_aux(C,a1,a2);
  864. /*IF*/if ((R)!=((void*)(NULL))) {
  865. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T844*)C))->_clients/*24*/);
  866. /*]*/
  867. }
  868. else {
  869. r605fatal_undefine(((T605*)a2),a1);
  870. }
  871. /*FI*/return R;
  872. }
  873. /*No:ONCE_FUNCTION.is_deferred*/
  874. /*No:ONCE_FUNCTION.fz_bad_assertion*/
  875. T0* r844runnable(T0* a1,T0* a2,T0* a3){
  876. T0* R=NULL;
  877. T0* _a=NULL;
  878. int _i=0;
  879. /*IF*/if (!(r608empty(((T608*)a1)))) {
  880. R=r608twin(((T608*)a1));
  881. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  882. while (!((_i)==(0))) {
  883. r604push(((T604*)(oBC364small_eiffel)),a3);
  884. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  885. /*IF*/if ((_a)==((void*)(NULL))) {
  886. r844error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  887. }
  888. else {
  889. /*[IRF3.6put*/{T608* C1=((T608*)R);
  890. T0* b1=_a;
  891. int b2=_i;
  892. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  893. }/*]*/
  894. }
  895. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  896. _i=(_i)-(1);
  897. }
  898. }
  899. /*FI*/return R;
  900. }
  901. /*No:ONCE_FUNCTION.rescue_compound*/
  902. void r844add_into(T844* C,T0* a1){
  903. T0* _fn=NULL;
  904. int _i=0;
  905. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  906. _i=1;
  907. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  908. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  909. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  910. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  911. r683add_position(X776start_position(_fn));
  912. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  913. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  914. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  915. r7append(((T7*)(oBC683explanation)),b1);
  916. }/*]*/
  917. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  918. }
  919. else {
  920. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  921. }
  922. /*FI*/_i=(_i)+(1);
  923. }
  924. }
  925. /*No:ONCE_FUNCTION.end_comment*/
  926. T0* r844try_to_undefine_aux(T844* C,T0* a1,T0* a2){
  927. T0* R=NULL;
  928. {T649*n=malloc(sizeof(*n));
  929. *n=M649;
  930. r649from_effective(n,a1,(((T844*)C))->_arguments/*28*/,(((T844*)C))->_result_type/*12*/,(((T844*)C))->_require_assertion/*36*/,(((T844*)C))->_ensure_assertion/*40*/,a2);
  931. R=(T0*)n;
  932. }
  933. return R;
  934. }
  935. void r844make(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  936. r844make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
  937. C->_result_type=a3;
  938. }
  939. /*No:ONCE_FUNCTION.not_computed*/
  940. /*No:ONCE_FUNCTION.nb_errors*/
  941. void r844make_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  942. r844make_e_feature(C,a1,NULL);
  943. C->_header_comment=a4;
  944. C->_arguments=a2;
  945. C->_obsolete_mark=a3;
  946. C->_require_assertion=a5;
  947. }
  948. /*No:ONCE_FUNCTION.local_vars*/
  949. void r844mapping_c_name_in(T844* C,T0* a1){
  950. r605mapping_c_in(((T605*)((((T844*)C))->_base_class/*4*/)),a1);
  951. r7append(((T7*)a1),X776to_key(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  952. }
  953. void r844set_header_comment(T844* C,T0* a1){
  954. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  955. C->_end_comment=a1;
  956. }
  957. /*FI*/}
  958. T0* r844start_position(T844* C){
  959. T0* R=NULL;
  960. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T844*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  961. return R;
  962. }
  963. T0* r844to_run_feature(T844* C,T0* a1,T0* a2){
  964. T0* R=NULL;
  965. r844check_obsolete(C);
  966. {T868*n=malloc(sizeof(*n));
  967. *n=M868;
  968. r868make(n,a1,a2,(T0*)C);
  969. R=(T0*)n;
  970. }
  971. return R;
  972. }
  973. /*No:ONCE_FUNCTION.ensure_assertion*/
  974. /*No:ONCE_FUNCTION.code_require*/
  975. T0* r844run_ensure(T0* a1){
  976. T0* R=NULL;
  977. T0* _r=NULL;
  978. r608clear(((T608*)(oBC359assertion_collector)));
  979. /*[IRF3.3clear*/{T0* _default_item=NULL;
  980. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  981. }/*]*/
  982. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  983. _r=r844runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  984. /*IF*/if ((_r)!=((void*)(NULL))) {
  985. {T633*n=malloc(sizeof(*n));
  986. *n=M633;
  987. r633from_runnable(n,_r);
  988. R=(T0*)n;
  989. }
  990. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  991. /*]*/
  992. /*[IRF3.3clear*/{T0* _default_item=NULL;
  993. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  994. }/*]*/
  995. }
  996. /*FI*/return R;
  997. }
  998. T0* r844run_require(T0* a1){
  999. T0* R=NULL;
  1000. T0* _ar=NULL;
  1001. T0* _hc=NULL;
  1002. T0* _er=NULL;
  1003. T0* _r=NULL;
  1004. int _i=0;
  1005. r522clear(((T522*)(oBC359require_collector)));
  1006. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  1007. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  1008. _i=1;
  1009. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  1010. _er=r522item(((T522*)(oBC359require_collector)),_i);
  1011. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  1012. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  1013. _r=r844runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  1014. /*IF*/if ((_r)!=((void*)(NULL))) {
  1015. {T343*n=malloc(sizeof(*n));
  1016. *n=M343;
  1017. r343from_runnable(n,_r);
  1018. _er=(T0*)n;
  1019. }
  1020. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  1021. /*]*/
  1022. /*IF*/if ((_ar)==((void*)(NULL))) {
  1023. _ar=se_ma522(1,_er);
  1024. }
  1025. else {
  1026. r522add_last(((T522*)_ar),_er);
  1027. }
  1028. /*FI*/}
  1029. /*FI*/}
  1030. /*FI*/_i=(_i)+(1);
  1031. }
  1032. /*IF*/if ((_ar)!=((void*)(NULL))) {
  1033. {T567*n=malloc(sizeof(*n));
  1034. *n=M567;
  1035. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  1036. /*]*/
  1037. R=(T0*)n;
  1038. }
  1039. }
  1040. /*FI*/}
  1041. /*FI*/return R;
  1042. }
  1043. /*No:ONCE_FUNCTION.result_type*/
  1044. /*No:ONCE_FUNCTION.fz_03*/
  1045. /*No:ONCE_FUNCTION.em1*/
  1046. /*No:ONCE_FUNCTION.obsolete_mark*/
  1047. /*No:ONCE_FUNCTION.set_clients*/
  1048. /*No:ONCE_FUNCTION.em2*/
  1049. /*No:ONCE_FUNCTION.names*/
  1050. /*No:ONCE_FUNCTION.require_assertion*/
  1051. /*No:ONCE_FUNCTION.use_current_state*/
  1052. /*No:ONCE_FUNCTION.code_ensure*/
  1053. int r844stupid_switch(T844* C,T0* a1,T0* a2){
  1054. int R=0;
  1055. R=((((T844*)C))->_routine_body/*52*/)==((void*)(NULL));
  1056. return R;
  1057. }
  1058. void r844set_rescue_compound(T844* C,T0* a1){
  1059. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  1060. r844error(r844start_position(C),((T0*)ms6_368));
  1061. }
  1062. /*FI*/C->_rescue_compound=a1;
  1063. }
  1064. int r844can_hide(T844* C,T0* a1,T0* a2){
  1065. int R=0;
  1066. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1067. /*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1068. r683add_position(X359start_position(a1));
  1069. r844error(r844start_position(C),((T0*)ms5_359));
  1070. }
  1071. /*FI*/}
  1072. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  1073. /*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1074. r683add_position(X359start_position(a1));
  1075. r844error(r844start_position(C),((T0*)ms6_359));
  1076. }
  1077.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1078. r683add_position(X359start_position(a1));
  1079. r844error(r844start_position(C),((T0*)ms7_359));
  1080. }
  1081. /*FI*/}
  1082. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1083. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1084. /*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1085. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1086. r7append(((T7*)(oBC683explanation)),b1);
  1087. }/*]*/
  1088. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1089. r7append(((T7*)(oBC683explanation)),b1);
  1090. }/*]*/
  1091. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1092. }
  1093. /*FI*/}
  1094. /*FI*/}
  1095. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1096. /*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  1097. /*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  1098. r683add_position(X359start_position(a1));
  1099. r683add_position(r844start_position(C));
  1100. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  1101. r7append(((T7*)(oBC683explanation)),b1);
  1102. }/*]*/
  1103. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  1104. r7append(((T7*)(oBC683explanation)),b1);
  1105. }/*]*/
  1106. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  1107. }
  1108. /*FI*/}
  1109. /*FI*/}
  1110. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1111. return R;
  1112. }
  1113. /*No:ONCE_FUNCTION.header_comment*/
  1114. /*No:ONCE_FUNCTION.routine_body*/
  1115. int r844is_merge_with(T844* C,T0* a1,T0* a2){
  1116. int R=0;
  1117. /*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  1118. /*IF*/if ((((((T844*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  1119. r683add_position(X359start_position(a1));
  1120. r844error(r844start_position(C),((T0*)ms2_359));
  1121. }
  1122. /*FI*/}
  1123. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(X359arguments(a1)))) {
  1124. /*IF*/if ((((((T844*)C))->_arguments/*28*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  1125. r683add_position(X359start_position(a1));
  1126. r844error(r844start_position(C),((T0*)ms3_359));
  1127. }
  1128.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T844*)C))->_arguments/*28*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  1129. r683add_position(X359start_position(a1));
  1130. r844error(r844start_position(C),((T0*)ms4_359));
  1131. }
  1132. /*FI*/}
  1133. /*FI*//*IF*/if (((((T844*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  1134. /*IF*/if (!(X291is_a_in((((T844*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  1135. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  1136. }
  1137. /*FI*/}
  1138. /*FI*//*IF*/if (((((T844*)C))->_arguments/*28*/)!=((void*)(NULL))) {
  1139. /*IF*/if (!(r31is_a_in(((T31*)((((T844*)C))->_arguments/*28*/)),X359arguments(a1),a2))) {
  1140. r683add_position(X359start_position(a1));
  1141. r844error(r844start_position(C),((T0*)ms12_359));
  1142. }
  1143. /*FI*/}
  1144. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  1145. return R;
  1146. }
  1147. /*No:ONCE_FUNCTION.fz_dot*/
  1148. /*No:ONCE_FUNCTION.set_ensure_assertion*/
  1149. /*No:ONCE_FUNCTION.first_name*/
  1150. /*No:ONCE_FUNCTION.clients*/
  1151. void r844collect_for(T844* C,int a1){
  1152. /*IF*/if ((a1)==(1001)) {
  1153. /*IF*/if (((((T844*)C))->_require_assertion/*36*/)!=((void*)(NULL))) {
  1154. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/))) {
  1155. r522add_last(((T522*)(oBC359require_collector)),(((T844*)C))->_require_assertion/*36*/);
  1156. }
  1157. /*FI*/}
  1158. /*FI*/}
  1159. else {
  1160. /*IF*/if (((((T844*)C))->_ensure_assertion/*40*/)!=((void*)(NULL))) {
  1161. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T844*)C))->_ensure_assertion/*40*/))))->_header_comment/*4*/);
  1162. /*]*/
  1163. r633add_into(((T633*)((((T844*)C))->_ensure_assertion/*40*/)),oBC359assertion_collector);
  1164. }
  1165. /*FI*/}
  1166. /*FI*/}
  1167. void r844make_effective_routine(T844* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  1168. r844make_routine(C,a1,a2,a3,a4,a5);
  1169. C->_local_vars=a6;
  1170. C->_routine_body=a7;
  1171. C->_use_current_state=1024;
  1172. }
  1173. void r844error(T0* a1,T0* a2){
  1174. r683add_position(a1);
  1175. r683error(((T683*)(oBC364eh)),a2);
  1176. }
  1177. /*No:ONCE_FUNCTION.base_class*/
  1178. /*No:ONCE_FUNCTION.base_class_name*/
  1179. void r844make_e_feature(T844* C,T0* a1,T0* a2){
  1180. C->_names=a1;
  1181. C->_result_type=a2;
  1182. }
  1183. void r844check_obsolete(T844* C){
  1184. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  1185. /*IF*/if (((((T844*)C))->_obsolete_mark/*32*/)!=((void*)(NULL))) {
  1186. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  1187. r7append(((T7*)(oBC683explanation)),b1);
  1188. }/*]*/
  1189. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T844*)C))->_obsolete_mark/*32*/))))->_to_string/*16*/;
  1190. r7append(((T7*)(oBC683explanation)),b1);
  1191. }/*]*/
  1192. r844warning(r844start_position(C),((T0*)ms137_470));
  1193. }
  1194. /*FI*/}
  1195. /*FI*/}
  1196. void r844warning(T0* a1,T0* a2){
  1197. r683add_position(a1);
  1198. r683warning(((T683*)(oBC364eh)),a2);
  1199. }
  1200. int r832id(T832* C){
  1201. int R=0;
  1202. R=X291id((((T832*)C))->_current_type/*4*/);
  1203. return R;
  1204. }
  1205. /*No:RUN_FEATURE_3.arguments*/
  1206. int r832direct_call(T832* C){
  1207. int R=0;
  1208. T0* _rf3=NULL;
  1209. T0* _args=NULL;
  1210. T0* _pc=NULL;
  1211. T0* _rb=NULL;
  1212. _rb=(((T832*)C))->_routine_body/*32*/;
  1213. /*IF*/if (((((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1)))&&(((((T832*)C))->_arguments/*20*/)==((void*)(NULL))))&&(((((T832*)C))->_local_vars/*48*/)==((void*)(NULL)))) {
  1214. _pc=r592first(((T592*)_rb));
  1215. if(NULL!=(_pc))switch(((T0*)_pc)->id) {
  1216. case 268: case 317: case 568: 
  1217. break;
  1218. default:
  1219. _pc=NULL;
  1220. };/*IF*/if ((_pc)!=((void*)(NULL))) {
  1221. /*IF*/if (X662is_current(/*X173*/((T0*)(((T268*)((T268*)_pc)))->_target/*8*/))) {
  1222. _rf3=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/);
  1223. if(NULL!=(_rf3))switch(((T0*)_rf3)->id) {
  1224. case 832: 
  1225. break;
  1226. default:
  1227. _rf3=NULL;
  1228. };/*IF*/if ((_rf3)!=((void*)(NULL))) {
  1229. _args=X173arguments(_pc);
  1230. /*IF*/if ((_args)==((void*)(NULL))) {
  1231. R=1;
  1232. }
  1233. else {
  1234. R=X431is_static(_args);
  1235. }
  1236. /*FI*/}
  1237. /*FI*/}
  1238. /*FI*/}
  1239. /*FI*/}
  1240. /*FI*/return R;
  1241. }
  1242. /*No:RUN_FEATURE_3.C_do_not_use_current*/
  1243. int r832do_not_use_current(T832* C){
  1244. int R=0;
  1245. /*IF*/if (!(r592use_current(((T592*)((((T832*)C))->_routine_body/*32*/))))) {
  1246. R=((((T832*)C))->_arguments/*20*/)==((void*)(NULL));
  1247. }
  1248. /*FI*/return R;
  1249. }
  1250. /*No:RUN_FEATURE_3.ucs_true*/
  1251. /*No:RUN_FEATURE_3.us_copy*/
  1252. void r832c_define(T832* C){
  1253. /*IF*/if (r832isa_in_line(C)) {
  1254. r324incr_inlined_procedure_count(((T324*)(oBC364cpp)));
  1255. r832nothing_comment(C);
  1256. }
  1257. else {
  1258. /*IF*/if (r832use_current(C)) {
  1259. r324incr_procedure_count(((T324*)(oBC364cpp)));
  1260. }
  1261. else {
  1262. r324incr_real_procedure_count(((T324*)(oBC364cpp)));
  1263. }
  1264. /*FI*/r832define_prototype(C);
  1265. r832define_opening(C);
  1266. /*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1267. r592compile_to_c(((T592*)((((T832*)C))->_routine_body/*32*/)));
  1268. }
  1269. /*FI*/r832define_closing(C);
  1270. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
  1271. /*]*/
  1272. }
  1273. /*FI*/}
  1274. int r832one_pc(T832* C){
  1275. int R=0;
  1276. T0* _r=NULL;
  1277. T0* _rf=NULL;
  1278. T0* _pc=NULL;
  1279. T0* _rb=NULL;
  1280. _rb=(((T832*)C))->_routine_body/*32*/;
  1281. /*IF*/if (((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1))) {
  1282. _pc=r592first(((T592*)_rb));
  1283. if(NULL!=(_pc))switch(((T0*)_pc)->id) {
  1284. case 268: case 317: case 568: 
  1285. break;
  1286. default:
  1287. _pc=NULL;
  1288. };/*IF*/if ((_pc)!=((void*)(NULL))) {
  1289. _rf=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/);
  1290. /*IF*/if (((_rf)!=((void*)(NULL)))&&((_rf)!=((void*)(C)))) {
  1291. _r=(((T355*)((T355*)(X496run_class(_rf)))))->_running/*12*/;
  1292. /*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
  1293. R=1;
  1294. }
  1295. /*FI*/}
  1296. /*FI*/}
  1297. /*FI*/}
  1298. /*FI*/return R;
  1299. }
  1300. /*No:RUN_FEATURE_3.actuals_clients*/
  1301. void r832nothing_comment(T832* C){
  1302. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms118_470));
  1303. /*]*/
  1304. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_496));
  1305. /*]*/
  1306. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291run_time_mark((((T832*)C))->_current_type/*4*/));
  1307. /*]*/
  1308. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1309. char b1='\56';
  1310. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1311. }/*]*/
  1312. /*]*/
  1313. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string((((T832*)C))->_name/*16*/));
  1314. /*]*/
  1315. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms81_470));
  1316. /*]*/
  1317. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1318. char b1='\n';
  1319. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1320. }/*]*/
  1321. /*]*/
  1322. }
  1323. void r832define_closing(T832* C){
  1324. /*IF*/if (r832use_current(C)) {
  1325. r324current_class_invariant(((T324*)(oBC364cpp)),(((T832*)C))->_current_type/*4*/);
  1326. }
  1327. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  1328. /*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1329. r633compile_to_c(((T633*)((((T832*)C))->_ensure_assertion/*36*/)));
  1330. }
  1331. /*FI*/}
  1332. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  1333. /*[IRF3.6rs_unlink*/{T324* C1=((T324*)(oBC364cpp));
  1334. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)C1))->_current_out/*56*/)),((T0*)ms156_324));
  1335. /*]*/
  1336. }/*]*/
  1337. }
  1338. /*FI*/}
  1339. int r832attribute_writer(T832* C){
  1340. int R=0;
  1341. T0* _wa=NULL;
  1342. T0* _an2=NULL;
  1343. T0* _args=NULL;
  1344. T0* _a=NULL;
  1345. T0* _rb=NULL;
  1346. _rb=(((T832*)C))->_routine_body/*32*/;
  1347. _args=(((T832*)C))->_arguments/*20*/;
  1348. /*IF*/if (((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1))) {
  1349. _a=r592first(((T592*)_rb));
  1350. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1351. case 629: 
  1352. break;
  1353. default:
  1354. _a=NULL;
  1355. };/*IF*/if ((_a)!=((void*)(NULL))) {
  1356. _wa=(((T629*)((T629*)_a)))->_left_side/*8*/;
  1357. if(NULL!=(_wa))switch(((T0*)_wa)->id) {
  1358. case 446: 
  1359. break;
  1360. default:
  1361. _wa=NULL;
  1362. };/*IF*/if ((_wa)!=((void*)(NULL))) {
  1363. /*IF*/if ((_args)==((void*)(NULL))) {
  1364. R=!(X662use_current((((T629*)((T629*)_a)))->_right_side/*12*/));
  1365. }
  1366.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_args)))->_flat_list/*12*/))))->_upper/*12*//*)*/)==(1)) {
  1367. _an2=(((T629*)((T629*)_a)))->_right_side/*12*/;
  1368. if(NULL!=(_an2))switch(((T0*)_an2)->id) {
  1369. case 886: 
  1370. break;
  1371. default:
  1372. _an2=NULL;
  1373. };R=(_an2)!=((void*)(NULL));
  1374. }
  1375. /*FI*/}
  1376. /*FI*/}
  1377. /*FI*/}
  1378. /*FI*/return R;
  1379. }
  1380. int r832empty_or_null_body(T832* C){
  1381. int R=0;
  1382. T0* _rb=NULL;
  1383. _rb=(((T832*)C))->_routine_body/*32*/;
  1384. R=((_rb)==((void*)(NULL)))||(/*(IRF4.7empty_or_null_body*/((((T592*)((T592*)_rb)))->_list/*8*/)==(NULL)/*)*/);
  1385. return R;
  1386. }
  1387. /*No:RUN_FEATURE_3.ucs_in_computation*/
  1388. int r832need_local_vars(T832* C){
  1389. int R=0;
  1390. /*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  1391. R=r620produce_c(((T620*)((((T832*)C))->_local_vars/*48*/)));
  1392. }
  1393. /*FI*/return R;
  1394. }
  1395. void r832make(T832* C,T0* a1,T0* a2,T0* a3){
  1396. C->_current_type=a1;
  1397. C->_name=a2;
  1398. C->_base_feature=a3;
  1399. r199put(((T199*)((((T355*)((T355*)(r832run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  1400. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  1401. C->_use_current_state=1005;
  1402. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  1403. r832initialize(C);
  1404. r604pop(((T604*)(oBC364small_eiffel)));
  1405. }
  1406. void r832std_compute_use_current(T832* C){
  1407. /*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
  1408. /*IF*/if (((((T832*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  1409. /*IF*/if (r567use_current(((T567*)((((T832*)C))->_require_assertion/*28*/)))) {
  1410. C->_use_current_state=1004;
  1411. }
  1412. /*FI*/}
  1413. /*FI*/}
  1414. /*FI*//*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
  1415. /*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1416. /*IF*/if (r592use_current(((T592*)((((T832*)C))->_routine_body/*32*/)))) {
  1417. C->_use_current_state=1004;
  1418. }
  1419. /*FI*/}
  1420. /*FI*/}
  1421. /*FI*//*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
  1422. /*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1423. /*IF*/if (r633use_current(((T633*)((((T832*)C))->_ensure_assertion/*36*/)))) {
  1424. C->_use_current_state=1004;
  1425. }
  1426. /*FI*/}
  1427. /*FI*/}
  1428. /*FI*//*IF*/if (((((T832*)C))->_use_current_state/*40*/)==(1006)) {
  1429. C->_use_current_state=1003;
  1430. }
  1431. /*FI*/}
  1432. /*No:RUN_FEATURE_3.name*/
  1433. void r832mapping_name(T832* C){
  1434. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1435. char b1='r';
  1436. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1437. }/*]*/
  1438. /*]*/
  1439. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r832id(C));
  1440. /*]*/
  1441. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_key((((T832*)C))->_name/*16*/));
  1442. /*]*/
  1443. }
  1444. int r832arg_count(T832* C){
  1445. int R=0;
  1446. /*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1447. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T832*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  1448. }
  1449. /*FI*/return R;
  1450. }
  1451. void r832routine_afd_check(T832* C){
  1452. /*IF*/if (((((T832*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  1453. r567afd_check(((T567*)((((T832*)C))->_require_assertion/*28*/)));
  1454. }
  1455. /*FI*//*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  1456. r592afd_check(((T592*)((((T832*)C))->_routine_body/*32*/)));
  1457. }
  1458. /*FI*//*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1459. r633afd_check(((T633*)((((T832*)C))->_ensure_assertion/*36*/)));
  1460. }
  1461. /*FI*/}
  1462. /*No:RUN_FEATURE_3.fz_open_c_comment*/
  1463. /*No:RUN_FEATURE_3.local_vars*/
  1464. void r832default_mapping_procedure(T832* C){
  1465. r832mapping_name(C);
  1466. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1467. char b1='\50';
  1468. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1469. }/*]*/
  1470. /*]*/
  1471. r324put_target_as_target(((T324*)(oBC364cpp)));
  1472. /*IF*/if ((r832arg_count(C))>(0)) {
  1473. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1474. char b1='\54';
  1475. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1476. }/*]*/
  1477. /*]*/
  1478. r324put_arguments(((T324*)(oBC364cpp)));
  1479. }
  1480. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  1481. /*]*/
  1482. }
  1483. int r832dca(T832* C){
  1484. int R=0;
  1485. T0* _args=NULL;
  1486. T0* _rf=NULL;
  1487. T0* _pc=NULL;
  1488. _pc=r832body_one_dpca(C);
  1489. /*IF*/if (((_pc)!=((void*)(NULL)))&&(((((T832*)C))->_local_vars/*48*/)==((void*)(NULL)))) {
  1490. _rf=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/);
  1491. /*IF*/if ((_rf)!=((void*)(C))) {
  1492. _args=X173arguments(_pc);
  1493. /*IF*/if ((_args)==((void*)(NULL))) {
  1494. R=(r832arg_count(C))==(0);
  1495. }
  1496. else {
  1497. R=X431isa_dca_inline(_args,(T0*)C,_rf);
  1498. }
  1499. /*FI*/}
  1500. /*FI*/}
  1501. /*FI*/return R;
  1502. }
  1503. /*No:RUN_FEATURE_3.C_attribute_writer*/
  1504. /*No:RUN_FEATURE_3.base_feature*/
  1505. void r832define_opening(T832* C){
  1506. T0* _t=NULL;
  1507. int _i=0;
  1508. /*IF*/if (((((T832*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  1509. _t=X291run_type((((T832*)C))->_result_type/*24*/);
  1510. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  1511. /*]*/
  1512. X291c_type_for_result_in(_t,oBC496c_code);
  1513. r7extend(((T7*)(oBC496c_code)),'\40');
  1514. r7extend(((T7*)(oBC496c_code)),'R');
  1515. r7extend(((T7*)(oBC496c_code)),'\75');
  1516. X291c_initialize_in(_t,oBC496c_code);
  1517. r7append(((T7*)(oBC496c_code)),((T0*)ms134_470));
  1518. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
  1519. /*]*/
  1520. }
  1521. /*FI*//*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  1522. r620compile_to_c(((T620*)((((T832*)C))->_local_vars/*48*/)));
  1523. }
  1524. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  1525. /*IF*/if (((((T832*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  1526. r633compile_to_c_old(((T633*)((((T832*)C))->_ensure_assertion/*36*/)));
  1527. }
  1528. /*FI*/}
  1529. /*FI*//*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  1530. r620initialize_expanded(((T620*)((((T832*)C))->_local_vars/*48*/)));
  1531. }
  1532. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  1533. r324rs_link(((T324*)(oBC364cpp)),(T0*)C);
  1534. /*IF*/if (r832use_current(C)) {
  1535. /*[IRF3.6rs_push_current*/{T324* C1=((T324*)(oBC364cpp));
  1536. T0* b1=(((T832*)C))->_current_type/*4*/;
  1537. r324rs_push(C1,((T0*)ms143_473),((T0*)ms157_324),b1);
  1538. }/*]*/
  1539. }
  1540. /*FI*/_i=1;
  1541. while (!((_i)>(r832arg_count(C)))) {
  1542. _t=X291run_type(r31type(((T31*)((((T832*)C))->_arguments/*20*/)),_i));
  1543. r324rs_push_argument(((T324*)(oBC364cpp)),(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T832*)C))->_arguments/*20*/))))->_flat_list/*12*/)),_i)/*)*/))))->_to_string/*12*/,_i,_t);
  1544. _i=(_i)+(1);
  1545. }
  1546. /*IF*/if (((((T832*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  1547. /*[IRF3.6rs_push_result*/{T324* C1=((T324*)(oBC364cpp));
  1548. T0* b1=X291run_type((((T832*)C))->_result_type/*24*/);
  1549. r324rs_push(C1,((T0*)ms146_473),((T0*)ms158_324),b1);
  1550. }/*]*/
  1551. }
  1552. /*FI*//*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  1553. _i=1;
  1554. while (!((_i)>(/*(IRF4.6count*/(((T733*)((T733*)((((T620*)((T620*)((((T832*)C))->_local_vars/*48*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
  1555. r39c_trace(((T39*)(/*(IRF4.6name*/r733item(((T733*)((((T620*)((T620*)((((T832*)C))->_local_vars/*48*/))))->_flat_list/*12*/)),_i)/*)*/)));
  1556. _i=(_i)+(1);
  1557. }
  1558. }
  1559. /*FI*/}
  1560. /*FI*//*IF*/if (((((T832*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  1561. r567compile_to_c(((T567*)((((T832*)C))->_require_assertion/*28*/)));
  1562. }
  1563. /*FI*/}
  1564. /*No:RUN_FEATURE_3.start_position*/
  1565. /*No:RUN_FEATURE_3.do_not_inline*/
  1566. /*No:RUN_FEATURE_3.fz_close_c_comment*/
  1567. /*No:RUN_FEATURE_3.fz_00*/
  1568. /*No:RUN_FEATURE_3.ensure_assertion*/
  1569. int r832is_exported_in(T832* C,T0* a1){
  1570. int R=0;
  1571. R=r636gives_permission_to(((T636*)(r832clients(C))),a1);
  1572. return R;
  1573. }
  1574. void r832compute_use_current(T832* C){
  1575. /*IF*/if ((X291is_reference((((T832*)C))->_current_type/*4*/))&&(r590no_check(((T590*)(oBC364run_control))))) {
  1576. C->_use_current_state=1004;
  1577. }
  1578. else {
  1579. r832std_compute_use_current(C);
  1580. }
  1581. /*FI*/}
  1582. /*No:RUN_FEATURE_3.fz_12*/
  1583. /*No:RUN_FEATURE_3.result_type*/
  1584. /*No:RUN_FEATURE_3.in_line_status*/
  1585. /*No:RUN_FEATURE_3.fz_13*/
  1586. /*No:RUN_FEATURE_3.C_one_pc*/
  1587. /*No:RUN_FEATURE_3.is_static*/
  1588. /*No:RUN_FEATURE_3.fz_14*/
  1589. void r832add_client(T832* C,T0* a1){
  1590. int _i=0;
  1591. /*IF*/if (((((T832*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  1592. {T187*n=malloc(sizeof(*n));
  1593. *n=M187;
  1594. r187with_capacity(n,4);
  1595. C->_actuals_clients=(T0*)n;
  1596. }
  1597. r187add_last(((T187*)((((T832*)C))->_actuals_clients/*12*/)),a1);
  1598. }
  1599. else {
  1600. _i=r187fast_index_of(((T187*)((((T832*)C))->_actuals_clients/*12*/)),a1);
  1601. /*IF*/if ((_i)>((((T187*)((T187*)((((T832*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  1602. r187add_last(((T187*)((((T832*)C))->_actuals_clients/*12*/)),a1);
  1603. }
  1604. /*FI*/}
  1605. /*FI*/r355add_client(((T355*)(r832run_class(C))),a1);
  1606. }
  1607. T0*oBC832tmp_string=NULL;
  1608. /*No:RUN_FEATURE_3.require_assertion*/
  1609. /*No:RUN_FEATURE_3.use_current_state*/
  1610. int r832isa_in_line(T832* C){
  1611. int R=0;
  1612. /*IF*/if (r590boost(((T590*)(oBC364run_control)))) {
  1613. {int z1=(((T832*)C))->_in_line_status/*52*/;
  1614.  
  1615. if((-1==z1)){
  1616. }
  1617.  else 
  1618. if((0==z1)){
  1619. R=1;
  1620. /*IF*/if ((((T0*)ms64_473))==((void*)(X776to_string((((T832*)C))->_name/*16*/)))) {
  1621. C->_in_line_status=-(1);
  1622. R=0;
  1623. }
  1624.  else if (r832empty_or_null_body(C)) {
  1625. C->_in_line_status=1;
  1626. }
  1627.  else if (r832do_not_use_current(C)) {
  1628. C->_in_line_status=2;
  1629. }
  1630.  else if (r832attribute_writer(C)) {
  1631. C->_in_line_status=3;
  1632. }
  1633.  else if (r832direct_call(C)) {
  1634. C->_in_line_status=4;
  1635. }
  1636.  else if (r832dca(C)) {
  1637. C->_in_line_status=5;
  1638. }
  1639.  else if (r832one_pc(C)) {
  1640. C->_in_line_status=6;
  1641. }
  1642. else {
  1643. C->_in_line_status=-(1);
  1644. R=0;
  1645. }
  1646. /*FI*/}
  1647.  else{R=1;
  1648. }}
  1649. }
  1650. /*FI*/return R;
  1651. }
  1652. /*No:RUN_FEATURE_3.can_be_dropped*/
  1653. /*No:RUN_FEATURE_3.C_dca*/
  1654. /*No:RUN_FEATURE_3.current_type*/
  1655. T0* r832run_class(T832* C){
  1656. T0* R=NULL;
  1657. R=X291run_class((((T832*)C))->_current_type/*4*/);
  1658. return R;
  1659. }
  1660. /*No:RUN_FEATURE_3.C_empty_or_null_body*/
  1661. /*No:RUN_FEATURE_3.static_value_mem*/
  1662. void r832define_prototype(T832* C){
  1663. int _mem_id=0;
  1664. _mem_id=r832id(C);
  1665. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  1666. /*]*/
  1667. /*IF*/if (((((T832*)C))->_result_type/*24*/)==((void*)(NULL))) {
  1668. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  1669. }
  1670. else {
  1671. X291c_type_for_result_in(X291run_type((((T832*)C))->_result_type/*24*/),oBC496c_code);
  1672. }
  1673. /*FI*/r7extend(((T7*)(oBC496c_code)),'\40');
  1674. r7extend(((T7*)(oBC496c_code)),'r');
  1675. r2append_in(_mem_id,oBC496c_code);
  1676. X776mapping_c_in((((T832*)C))->_name/*16*/,oBC496c_code);
  1677. r7extend(((T7*)(oBC496c_code)),'\50');
  1678. /*IF*/if (r832use_current(C)) {
  1679. X291c_type_for_target_in((((T832*)C))->_current_type/*4*/,oBC496c_code);
  1680. r7extend(((T7*)(oBC496c_code)),'\40');
  1681. r7extend(((T7*)(oBC496c_code)),'C');
  1682. /*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1683. r7extend(((T7*)(oBC496c_code)),'\54');
  1684. }
  1685. /*FI*/}
  1686. /*FI*//*IF*/if (((((T832*)C))->_arguments/*20*/)==((void*)(NULL))) {
  1687. /*IF*/if (!(r832use_current(C))) {
  1688. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  1689. }
  1690. /*FI*/}
  1691. else {
  1692. r31compile_to_c_in(((T31*)((((T832*)C))->_arguments/*20*/)),oBC496c_code);
  1693. }
  1694. /*FI*/r7extend(((T7*)(oBC496c_code)),'\51');
  1695. r324put_c_heading(((T324*)(oBC364cpp)),oBC496c_code);
  1696. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  1697. /*]*/
  1698. }
  1699. /*No:RUN_FEATURE_3.fz_b5*/
  1700. /*No:RUN_FEATURE_3.ucs_not_computed*/
  1701. void r832fall_down(T832* C){
  1702. T0* _rf=NULL;
  1703. T0* _sub_name=NULL;
  1704. T0* _sub_bc=NULL;
  1705. T0* _current_bc=NULL;
  1706. T0* _sub_rc=NULL;
  1707. T0* _current_rc=NULL;
  1708. int _i=0;
  1709. T0* _running=NULL;
  1710. _current_rc=X291run_class((((T832*)C))->_current_type/*4*/);
  1711. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  1712. /*IF*/if ((_running)!=((void*)(NULL))) {
  1713. _current_bc=X291base_class((((T832*)C))->_current_type/*4*/);
  1714. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  1715. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  1716. _sub_rc=r396item(((T396*)_running),_i);
  1717. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  1718. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  1719. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T832*)C))->_name/*16*/);
  1720. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  1721. }
  1722. /*FI*/_i=(_i)+(1);
  1723. }
  1724. }
  1725. /*FI*/}
  1726. void r832in_line(T832* C){
  1727. T0* _rf=NULL;
  1728. T0* _pc=NULL;
  1729. T0* _e=NULL;
  1730. T0* _w=NULL;
  1731. T0* _a=NULL;
  1732. int _flag=0;
  1733. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_832));
  1734. /*]*/
  1735. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T832*)C))->_in_line_status/*52*/);
  1736. /*]*/
  1737. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string((((T832*)C))->_name/*16*/));
  1738. /*]*/
  1739. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms81_470));
  1740. /*]*/
  1741. {int z1=(((T832*)C))->_in_line_status/*52*/;
  1742.  
  1743. if((1==z1)){
  1744. /*IF*/if (r324cannot_drop_all(((T324*)(oBC364cpp)))) {
  1745. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  1746. /*]*/
  1747. }
  1748. /*FI*//*IF*/if (r832need_local_vars(C)) {
  1749. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1750. char b1='\173';
  1751. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1752. }/*]*/
  1753. /*]*/
  1754. r832define_opening(C);
  1755. r832define_closing(C);
  1756. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1757. char b1='\175';
  1758. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1759. }/*]*/
  1760. /*]*/
  1761. }
  1762. /*FI*/}
  1763.  else 
  1764. if((2==z1)){
  1765. /*IF*/if (r324target_cannot_be_dropped(((T324*)(oBC364cpp)))) {
  1766. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  1767. /*]*/
  1768. }
  1769. /*FI*/_flag=r832need_local_vars(C);
  1770. /*IF*/if (_flag) {
  1771. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1772. char b1='\173';
  1773. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1774. }/*]*/
  1775. /*]*/
  1776. r832define_opening(C);
  1777. }
  1778. /*FI*/r592compile_to_c(((T592*)((((T832*)C))->_routine_body/*32*/)));
  1779. /*IF*/if (_flag) {
  1780. r832define_closing(C);
  1781. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1782. char b1='\175';
  1783. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1784. }/*]*/
  1785. /*]*/
  1786. }
  1787. /*FI*/}
  1788.  else 
  1789. if((3==z1)){
  1790. _flag=r832need_local_vars(C);
  1791. /*IF*/if (_flag) {
  1792. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1793. char b1='\173';
  1794. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1795. }/*]*/
  1796. /*]*/
  1797. r832define_opening(C);
  1798. }
  1799. /*FI*/_a=r592first(((T592*)((((T832*)C))->_routine_body/*32*/)));
  1800. if(NULL!=(_a))switch(((T0*)_a)->id) {
  1801. case 629: 
  1802. break;
  1803. default:
  1804. _a=NULL;
  1805. };_w=(((T629*)((T629*)_a)))->_left_side/*8*/;
  1806. if(NULL!=(_w))switch(((T0*)_w)->id) {
  1807. case 406: case 454: case 446: 
  1808. break;
  1809. default:
  1810. _w=NULL;
  1811. };_w=X776name_in(_w,X291base_class((((T832*)C))->_current_type/*4*/));
  1812. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1813. char b1='\50';
  1814. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1815. }/*]*/
  1816. /*]*/
  1817. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1818. char b1='\50';
  1819. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1820. }/*]*/
  1821. /*]*/
  1822. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1823. char b1='\50';
  1824. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1825. }/*]*/
  1826. /*]*/
  1827. X291mapping_cast((((T832*)C))->_current_type/*4*/);
  1828. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1829. char b1='\50';
  1830. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1831. }/*]*/
  1832. /*]*/
  1833. r324put_target_as_target(((T324*)(oBC364cpp)));
  1834. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms147_470));
  1835. /*]*/
  1836. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms240_470));
  1837. /*]*/
  1838. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_w));
  1839. /*]*/
  1840. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1841. char b1='\51';
  1842. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1843. }/*]*/
  1844. /*]*/
  1845. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1846. char b1='\75';
  1847. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1848. }/*]*/
  1849. /*]*/
  1850. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1851. char b1='\50';
  1852. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1853. }/*]*/
  1854. /*]*/
  1855. _e=(((T629*)((T629*)_a)))->_right_side/*12*/;
  1856. /*IF*/if (((((T832*)C))->_arguments/*20*/)==((void*)(NULL))) {
  1857. X662compile_to_c(_e);
  1858. }
  1859. else {
  1860. r324put_arguments(((T324*)(oBC364cpp)));
  1861. }
  1862. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1863. char b1='\51';
  1864. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1865. }/*]*/
  1866. /*]*/
  1867. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  1868. /*]*/
  1869. /*IF*/if (_flag) {
  1870. r832define_closing(C);
  1871. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1872. char b1='\175';
  1873. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1874. }/*]*/
  1875. /*]*/
  1876. }
  1877. /*FI*/}
  1878.  else 
  1879. if((4==z1)){
  1880. _flag=r832need_local_vars(C);
  1881. /*IF*/if (_flag) {
  1882. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1883. char b1='\173';
  1884. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1885. }/*]*/
  1886. /*]*/
  1887. r832define_opening(C);
  1888. }
  1889. /*FI*/_pc=r592first(((T592*)((((T832*)C))->_routine_body/*32*/)));
  1890. if(NULL!=(_pc))switch(((T0*)_pc)->id) {
  1891. case 268: case 317: case 568: 
  1892. break;
  1893. default:
  1894. _pc=NULL;
  1895. };_rf=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/);
  1896. r324push_same_target(((T324*)(oBC364cpp)),_rf,X173arguments(_pc));
  1897. X496mapping_c(_rf);
  1898. r324pop(((T324*)(oBC364cpp)));
  1899. /*IF*/if (_flag) {
  1900. r832define_closing(C);
  1901. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1902. char b1='\175';
  1903. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1904. }/*]*/
  1905. /*]*/
  1906. }
  1907. /*FI*/}
  1908.  else 
  1909. if((5==z1)){
  1910. _pc=r592first(((T592*)((((T832*)C))->_routine_body/*32*/)));
  1911. if(NULL!=(_pc))switch(((T0*)_pc)->id) {
  1912. case 268: case 317: case 568: 
  1913. break;
  1914. default:
  1915. _pc=NULL;
  1916. };X173finalize(_pc);
  1917. r324push_inline_dca(((T324*)(oBC364cpp)),(T0*)C,_pc);
  1918. X496mapping_c(/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/));
  1919. r324pop(((T324*)(oBC364cpp)));
  1920. }
  1921.  else {/*IF*/if (!(r832use_current(C))) {
  1922. /*IF*/if (r324target_cannot_be_dropped(((T324*)(oBC364cpp)))) {
  1923. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  1924. /*]*/
  1925. }
  1926. /*FI*/}
  1927. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1928. char b1='\173';
  1929. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1930. }/*]*/
  1931. /*]*/
  1932. /*IF*/if (r832use_current(C)) {
  1933. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC832tmp_string)))))->_count)=(0);
  1934. /*]*/
  1935. X291c_type_for_target_in((((T832*)C))->_current_type/*4*/,oBC832tmp_string);
  1936. r7extend(((T7*)(oBC832tmp_string)),'\40');
  1937. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC832tmp_string);
  1938. /*]*/
  1939. r324inline_level_incr(((T324*)(oBC364cpp)));
  1940. r324print_current(((T324*)(oBC364cpp)));
  1941. r324inline_level_decr(((T324*)(oBC364cpp)));
  1942. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1943. char b1='\75';
  1944. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1945. }/*]*/
  1946. /*]*/
  1947. r324put_target_as_target(((T324*)(oBC364cpp)));
  1948. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  1949. /*]*/
  1950. }
  1951. /*FI*//*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1952. r31inline_one_pc(((T31*)((((T832*)C))->_arguments/*20*/)));
  1953. }
  1954. /*FI*//*IF*/if (r832need_local_vars(C)) {
  1955. r620inline_one_pc(((T620*)((((T832*)C))->_local_vars/*48*/)));
  1956. r324inline_level_incr(((T324*)(oBC364cpp)));
  1957. r620initialize_expanded(((T620*)((((T832*)C))->_local_vars/*48*/)));
  1958. r324inline_level_decr(((T324*)(oBC364cpp)));
  1959. }
  1960. /*FI*//*[IRF3.4push_inline_one_pc*/r324stack_push(((T324*)(oBC364cpp)),1014);
  1961. /*]*/
  1962. r324inline_level_incr(((T324*)(oBC364cpp)));
  1963. r592compile_to_c(((T592*)((((T832*)C))->_routine_body/*32*/)));
  1964. r324inline_level_decr(((T324*)(oBC364cpp)));
  1965. r324pop(((T324*)(oBC364cpp)));
  1966. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1967. char b1='\175';
  1968. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1969. }/*]*/
  1970. /*]*/
  1971. }}
  1972. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_832));
  1973. /*]*/
  1974. }
  1975. /*No:RUN_FEATURE_3.routine_body*/
  1976. /*No:RUN_FEATURE_3.fz_void*/
  1977. /*No:RUN_FEATURE_3.C_direct_call*/
  1978. /*No:RUN_FEATURE_3.ucs_false*/
  1979. int r832is_pre_computable(T832* C){
  1980. int R=0;
  1981. /*IF*/if (((((T832*)C))->_arguments/*20*/)==((void*)(NULL))) {
  1982. /*IF*/if (((((T832*)C))->_routine_body/*32*/)==((void*)(NULL))) {
  1983. R=1;
  1984. }
  1985. else {
  1986. /*IF*/if (((((T832*)C))->_local_vars/*48*/)==((void*)(NULL))) {
  1987. R=r592is_pre_computable(((T592*)((((T832*)C))->_routine_body/*32*/)));
  1988. }
  1989. /*FI*/}
  1990. /*FI*/}
  1991. /*FI*/return R;
  1992. }
  1993. T0* r832clients(T832* C){
  1994. T0* R=NULL;
  1995. T0* _bfbc=NULL;
  1996. T0* _bc=NULL;
  1997. /*IF*/if (((((T832*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  1998. _bc=X291base_class((((T832*)C))->_current_type/*4*/);
  1999. _bfbc=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_base_class/*4*/;
  2000. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  2001. R=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_clients/*24*/;
  2002. }
  2003. else {
  2004. R=r605clients_for(((T605*)_bc),(((T832*)C))->_name/*16*/);
  2005. }
  2006. /*FI*/C->_clients_memory=R;
  2007. }
  2008. else {
  2009. R=(((T832*)C))->_clients_memory/*8*/;
  2010. }
  2011. /*FI*/return R;
  2012. }
  2013. int r832use_current(T832* C){
  2014. int R=0;
  2015. {int z1=(((T832*)C))->_use_current_state/*40*/;
  2016.  
  2017. if((1004==z1)){
  2018. R=1;
  2019. }
  2020.  else 
  2021. if((1003==z1)){
  2022. }
  2023.  else 
  2024. if((1005==z1)){
  2025. C->_use_current_state=1006;
  2026. r832compute_use_current(C);
  2027. R=r832use_current(C);
  2028. }
  2029.  else {R=1;
  2030. }}
  2031. return R;
  2032. }
  2033. T0* r832body_one_dpca(T832* C){
  2034. T0* R=NULL;
  2035. T0* _r=NULL;
  2036. T0* _rf2=NULL;
  2037. T0* _c0c=NULL;
  2038. T0* _pc=NULL;
  2039. T0* _rb=NULL;
  2040. /*IF*/if (((((T832*)C))->_local_vars/*48*/)==((void*)(NULL))) {
  2041. _rb=(((T832*)C))->_routine_body/*32*/;
  2042. /*IF*/if (((_rb)!=((void*)(NULL)))&&((r592count(((T592*)_rb)))==(1))) {
  2043. _pc=r592first(((T592*)_rb));
  2044. if(NULL!=(_pc))switch(((T0*)_pc)->id) {
  2045. case 268: case 317: case 568: 
  2046. break;
  2047. default:
  2048. _pc=NULL;
  2049. };/*IF*/if ((_pc)!=((void*)(NULL))) {
  2050. _c0c=/*X173*/((T0*)(((T268*)((T268*)_pc)))->_target/*8*/);
  2051. if(NULL!=(_c0c))switch(((T0*)_c0c)->id) {
  2052. case 487: 
  2053. break;
  2054. default:
  2055. _c0c=NULL;
  2056. };/*IF*/if (((_c0c)!=((void*)(NULL)))&&(X662is_current((((T487*)((T487*)_c0c)))->_target/*12*/))) {
  2057. _rf2=(((T487*)((T487*)_c0c)))->_run_feature/*20*/;
  2058. if(NULL!=(_rf2))switch(((T0*)_rf2)->id) {
  2059. case 820: 
  2060. break;
  2061. default:
  2062. _rf2=NULL;
  2063. };/*IF*/if ((_rf2)!=((void*)(NULL))) {
  2064. _r=(((T355*)((T355*)(r820run_class(((T820*)_rf2))))))->_running/*12*/;
  2065. /*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
  2066. _r=(((T355*)((T355*)(X496run_class(/*X173*/((T0*)(((T268*)((T268*)_pc)))->_run_feature/*16*/))))))->_running/*12*/;
  2067. /*IF*/if (((_r)!=((void*)(NULL)))&&((r396count(((T396*)_r)))==(1))) {
  2068. R=_pc;
  2069. }
  2070. /*FI*/}
  2071. /*FI*/}
  2072. /*FI*/}
  2073. /*FI*/}
  2074. /*FI*/}
  2075. /*FI*/}
  2076. /*FI*/return R;
  2077. }
  2078. T0* r832is_attribute_writer(T832* C){
  2079. T0* R=NULL;
  2080. T0* _a=NULL;
  2081. /*IF*/if (r832isa_in_line(C)) {
  2082. /*IF*/if (((((T832*)C))->_in_line_status/*52*/)==(3)) {
  2083. _a=r592first(((T592*)((((T832*)C))->_routine_body/*32*/)));
  2084. if(NULL!=(_a))switch(((T0*)_a)->id) {
  2085. case 629: 
  2086. break;
  2087. default:
  2088. _a=NULL;
  2089. };R=(((T629*)((T629*)_a)))->_left_side/*8*/;
  2090. if(NULL!=(R))switch(((T0*)R)->id) {
  2091. case 446: 
  2092. break;
  2093. default:
  2094. R=NULL;
  2095. };}
  2096. /*FI*/}
  2097. /*FI*/return R;
  2098. }
  2099. void r832mapping_c(T832* C){
  2100. /*IF*/if (r832isa_in_line(C)) {
  2101. r832in_line(C);
  2102. }
  2103.  else if (r832use_current(C)) {
  2104. r832default_mapping_procedure(C);
  2105. }
  2106. else {
  2107. /*IF*/if (r324target_cannot_be_dropped(((T324*)(oBC364cpp)))) {
  2108. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  2109. /*]*/
  2110. }
  2111. /*FI*/r832mapping_name(C);
  2112. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2113. char b1='\50';
  2114. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2115. }/*]*/
  2116. /*]*/
  2117. /*IF*/if ((r832arg_count(C))>(0)) {
  2118. r324put_arguments(((T324*)(oBC364cpp)));
  2119. }
  2120. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  2121. /*]*/
  2122. }
  2123. /*FI*/}
  2124. int r832is_empty_or_null_body(T832* C){
  2125. int R=0;
  2126. /*IF*/if (r832isa_in_line(C)) {
  2127. R=((((T832*)C))->_in_line_status/*52*/)==(1);
  2128. }
  2129. /*FI*/return R;
  2130. }
  2131. /*No:RUN_FEATURE_3.address_of*/
  2132. void r832put_tag(T832* C){
  2133. T0* _fn=NULL;
  2134. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2135. char b1='\42';
  2136. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2137. }/*]*/
  2138. /*]*/
  2139. _fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
  2140. X776cpp_put_infix_or_prefix(_fn);
  2141. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_fn));
  2142. /*]*/
  2143. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_496));
  2144. /*]*/
  2145. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T451*)((T451*)(/*(IRF4.6base_class_name*/(((T605*)((T605*)((((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_base_class/*4*/))))->_base_class_name/*24*//*)*/))))->_to_string/*0*/);
  2146. /*]*/
  2147. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2148. char b1='\42';
  2149. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2150. }/*]*/
  2151. /*]*/
  2152. }
  2153. /*No:RUN_FEATURE_3.clients_memory*/
  2154. void r832initialize(T832* C){
  2155. C->_arguments=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_arguments/*28*/;
  2156. /*IF*/if (((((T832*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  2157. C->_arguments=r31to_runnable(((T31*)((((T832*)C))->_arguments/*20*/)),(((T832*)C))->_current_type/*4*/);
  2158. }
  2159. /*FI*/C->_local_vars=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_local_vars/*20*/;
  2160. /*IF*/if (((((T832*)C))->_local_vars/*48*/)!=((void*)(NULL))) {
  2161. C->_local_vars=r620to_runnable(((T620*)((((T832*)C))->_local_vars/*48*/)),(((T832*)C))->_current_type/*4*/);
  2162. }
  2163. /*FI*/C->_routine_body=(((T297*)((T297*)((((T832*)C))->_base_feature/*44*/))))->_routine_body/*52*/;
  2164. /*IF*/if (((((T832*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  2165. C->_routine_body=r592to_runnable(((T592*)((((T832*)C))->_routine_body/*32*/)),(((T832*)C))->_current_type/*4*/);
  2166. }
  2167. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  2168. C->_require_assertion=r297run_require((T0*)C);
  2169. }
  2170. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  2171. C->_ensure_assertion=r297run_ensure((T0*)C);
  2172. }
  2173. /*FI*/}
  2174. /*No:RUN_FEATURE_3.afd_check*/
  2175. T0* r530add_comment(T530* C,T0* a1){
  2176. T0* R=NULL;
  2177. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  2178. R=(T0*)C;
  2179. }
  2180.  else {/*AT*//*IF*/if ((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(1)) {
  2181. R=(T0*)C;
  2182. }
  2183. else {
  2184. {T46*n=malloc(sizeof(*n));
  2185. *n=M46;
  2186. r46make(n,(T0*)C,a1);
  2187. R=(T0*)n;
  2188. }
  2189. }
  2190. /*FI*/}
  2191. /*FI*/return R;
  2192. }
  2193. /*No:IFTHENELSE.static_false*/
  2194. /*No:IFTHENELSE.make*/
  2195. /*No:IFTHENELSE.nb_errors*/
  2196. /*No:IFTHENELSE.set_else_compound*/
  2197. /*No:IFTHENELSE.static_true*/
  2198. /*No:IFTHENELSE.start_position*/
  2199. void r530compile_to_c(T530* C){
  2200. int _static_value=0;
  2201. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_530));
  2202. /*]*/
  2203. _static_value=r712compile_to_c(((T712*)((((T530*)C))->_ifthenlist/*12*/)));
  2204. {int z1=_static_value;
  2205.  
  2206. if((1017==z1)){
  2207. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_530));
  2208. /*]*/
  2209. /*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
  2210. r592compile_to_c(((T592*)((((T530*)C))->_else_compound/*16*/)));
  2211. }
  2212. /*FI*/}
  2213.  else 
  2214. if((1016==z1)){
  2215. }
  2216.  else {/*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
  2217. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_530));
  2218. /*]*/
  2219. r592compile_to_c(((T592*)((((T530*)C))->_else_compound/*16*/)));
  2220. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_530));
  2221. /*]*/
  2222. }
  2223. /*FI*/}}
  2224. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_530));
  2225. /*]*/
  2226. }
  2227. T0* r530to_runnable(T530* C,T0* a1){
  2228. T0* R=NULL;
  2229. T0* _ec=NULL;
  2230. T0* _itl=NULL;
  2231. int _ne=0;
  2232. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  2233. /*IF*/if (((((T530*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  2234. C->_run_compound=a1;
  2235. _itl=r712to_runnable(((T712*)((((T530*)C))->_ifthenlist/*12*/)),a1);
  2236. /*IF*/if ((_itl)==((void*)(NULL))) {
  2237. }
  2238. else {
  2239. C->_ifthenlist=_itl;
  2240. }
  2241. /*FI*//*IF*/if ((((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))==(0))&&(((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL)))) {
  2242. _ec=r592to_runnable(((T592*)((((T530*)C))->_else_compound/*16*/)),r530current_type(C));
  2243. /*IF*/if ((_ec)==((void*)(NULL))) {
  2244. }
  2245. else {
  2246. C->_else_compound=_ec;
  2247. }
  2248. /*FI*/}
  2249. /*FI*//*IF*/if ((_itl)!=((void*)(NULL))) {
  2250. R=(T0*)C;
  2251. }
  2252. /*FI*/}
  2253. else {
  2254. R=r530to_runnable(((T530*)(r530twin(C))),a1);
  2255. }
  2256. /*FI*/return R;
  2257. }
  2258. T0* r530twin(T530* C){
  2259. T0* R=NULL;
  2260. R=malloc(sizeof(*C));
  2261. *((T530*)R)=M530;
  2262. r530copy(((T530*)R),((T0*)C));
  2263. return R;
  2264. }
  2265. /*No:IFTHENELSE.ifthenlist*/
  2266. /*No:IFTHENELSE.else_compound*/
  2267. void r530copy(T530* C,T0* a1){
  2268. C->_start_position=(((T530*)((T530*)a1)))->_start_position/*8*/;
  2269. C->_ifthenlist=(((T530*)((T530*)a1)))->_ifthenlist/*12*/;
  2270. C->_else_compound=(((T530*)((T530*)a1)))->_else_compound/*16*/;
  2271. }
  2272. T0* r530current_type(T530* C){
  2273. T0* R=NULL;
  2274. /*IF*/if (((((T530*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  2275. R=(((T592*)((T592*)((((T530*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  2276. }
  2277. /*FI*/return R;
  2278. }
  2279. /*No:IFTHENELSE.run_compound*/
  2280. /*No:IFTHENELSE.non_static*/
  2281. /*No:IFTHENELSE.is_pre_computable*/
  2282. int r530use_current(T530* C){
  2283. int R=0;
  2284. /*IF*/if (r712use_current(((T712*)((((T530*)C))->_ifthenlist/*12*/)))) {
  2285. R=1;
  2286. }
  2287.  else if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
  2288. R=r592use_current(((T592*)((((T530*)C))->_else_compound/*16*/)));
  2289. }
  2290. /*FI*/return R;
  2291. }
  2292. void r530add_if_then(T530* C,T0* a1,T0* a2){
  2293. T0* _ifthen=NULL;
  2294. {T809*n=malloc(sizeof(*n));
  2295. *n=M809;
  2296. r809make(n,a1,a2);
  2297. _ifthen=(T0*)n;
  2298. }
  2299. /*IF*/if (((((T530*)C))->_ifthenlist/*12*/)==((void*)(NULL))) {
  2300. {T712*n=malloc(sizeof(*n));
  2301. *n=M712;
  2302. /*[IRF3.3make*/((((T712*)(n)))->_list)=(se_ma948(1,_ifthen));
  2303. /*]*/
  2304. C->_ifthenlist=(T0*)n;
  2305. }
  2306. }
  2307. else {
  2308. /*[IRF3.5add_last*/r948add_last(((T948*)((((T712*)((T712*)((((T530*)C))->_ifthenlist/*12*/))))->_list/*0*/)),_ifthen);
  2309. /*]*/
  2310. }
  2311. /*FI*/}
  2312. /*No:IFTHENELSE.end_mark_comment*/
  2313. void r530afd_check(T530* C){
  2314. r712afd_check(((T712*)((((T530*)C))->_ifthenlist/*12*/)));
  2315. /*IF*/if (((((T530*)C))->_else_compound/*16*/)!=((void*)(NULL))) {
  2316. r592afd_check(((T592*)((((T530*)C))->_else_compound/*16*/)));
  2317. }
  2318. /*FI*/}
  2319. /*No:EXTERNAL_PROCEDURE.arguments*/
  2320. T0* r883try_to_undefine(T883* C,T0* a1,T0* a2){
  2321. T0* R=NULL;
  2322. X776undefine_in(a1,a2);
  2323. R=r883try_to_undefine_aux(C,a1,a2);
  2324. /*IF*/if ((R)!=((void*)(NULL))) {
  2325. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T883*)C))->_clients/*20*/);
  2326. /*]*/
  2327. }
  2328. else {
  2329. r605fatal_undefine(((T605*)a2),a1);
  2330. }
  2331. /*FI*/return R;
  2332. }
  2333. /*No:EXTERNAL_PROCEDURE.is_deferred*/
  2334. /*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
  2335. T0* r883runnable(T0* a1,T0* a2,T0* a3){
  2336. T0* R=NULL;
  2337. T0* _a=NULL;
  2338. int _i=0;
  2339. /*IF*/if (!(r608empty(((T608*)a1)))) {
  2340. R=r608twin(((T608*)a1));
  2341. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  2342. while (!((_i)==(0))) {
  2343. r604push(((T604*)(oBC364small_eiffel)),a3);
  2344. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  2345. /*IF*/if ((_a)==((void*)(NULL))) {
  2346. r883error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  2347. }
  2348. else {
  2349. /*[IRF3.6put*/{T608* C1=((T608*)R);
  2350. T0* b1=_a;
  2351. int b2=_i;
  2352. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  2353. }/*]*/
  2354. }
  2355. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  2356. _i=(_i)-(1);
  2357. }
  2358. }
  2359. /*FI*/return R;
  2360. }
  2361. /*No:EXTERNAL_PROCEDURE.rescue_compound*/
  2362. void r883add_into(T883* C,T0* a1){
  2363. T0* _fn=NULL;
  2364. int _i=0;
  2365. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  2366. _i=1;
  2367. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  2368. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  2369. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  2370. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  2371. r683add_position(X776start_position(_fn));
  2372. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  2373. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  2374. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  2375. r7append(((T7*)(oBC683explanation)),b1);
  2376. }/*]*/
  2377. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  2378. }
  2379. else {
  2380. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  2381. }
  2382. /*FI*/_i=(_i)+(1);
  2383. }
  2384. }
  2385. /*No:EXTERNAL_PROCEDURE.end_comment*/
  2386. T0* r883try_to_undefine_aux(T883* C,T0* a1,T0* a2){
  2387. T0* R=NULL;
  2388. {T853*n=malloc(sizeof(*n));
  2389. *n=M853;
  2390. r853from_effective(n,a1,(((T883*)C))->_arguments/*24*/,(((T883*)C))->_require_assertion/*32*/,(((T883*)C))->_ensure_assertion/*36*/,a2);
  2391. R=(T0*)n;
  2392. }
  2393. return R;
  2394. }
  2395. T0* r883external_c_name(T883* C){
  2396. T0* R=NULL;
  2397. /*IF*/if (((((T883*)C))->_alias_string/*52*/)==((void*)(NULL))) {
  2398. R=X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  2399. }
  2400. else {
  2401. R=(((T883*)C))->_alias_string/*52*/;
  2402. }
  2403. /*FI*/return R;
  2404. }
  2405. void r883make(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  2406. r883make_routine(C,a1,a2,a3,a4,a5);
  2407. r883make_external_routine(C,a6,a7);
  2408. }
  2409. /*No:EXTERNAL_PROCEDURE.nb_errors*/
  2410. /*No:EXTERNAL_PROCEDURE.native*/
  2411. void r883make_routine(T883* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  2412. r883make_e_feature(C,a1,NULL);
  2413. C->_header_comment=a4;
  2414. C->_arguments=a2;
  2415. C->_obsolete_mark=a3;
  2416. C->_require_assertion=a5;
  2417. }
  2418. void r883set_header_comment(T883* C,T0* a1){
  2419. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  2420. C->_end_comment=a1;
  2421. }
  2422. /*FI*/}
  2423. T0* r883start_position(T883* C){
  2424. T0* R=NULL;
  2425. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  2426. return R;
  2427. }
  2428. T0* r883to_run_feature(T883* C,T0* a1,T0* a2){
  2429. T0* R=NULL;
  2430. r883check_obsolete(C);
  2431. {T906*n=malloc(sizeof(*n));
  2432. *n=M906;
  2433. r906make(n,a1,a2,(T0*)C);
  2434. R=(T0*)n;
  2435. }
  2436. return R;
  2437. }
  2438. /*No:EXTERNAL_PROCEDURE.alias_string*/
  2439. /*No:EXTERNAL_PROCEDURE.ensure_assertion*/
  2440. /*No:EXTERNAL_PROCEDURE.code_require*/
  2441. T0* r883run_ensure(T0* a1){
  2442. T0* R=NULL;
  2443. T0* _r=NULL;
  2444. r608clear(((T608*)(oBC359assertion_collector)));
  2445. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2446. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  2447. }/*]*/
  2448. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  2449. _r=r883runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  2450. /*IF*/if ((_r)!=((void*)(NULL))) {
  2451. {T633*n=malloc(sizeof(*n));
  2452. *n=M633;
  2453. r633from_runnable(n,_r);
  2454. R=(T0*)n;
  2455. }
  2456. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  2457. /*]*/
  2458. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2459. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  2460. }/*]*/
  2461. }
  2462. /*FI*/return R;
  2463. }
  2464. T0* r883run_require(T0* a1){
  2465. T0* R=NULL;
  2466. T0* _ar=NULL;
  2467. T0* _hc=NULL;
  2468. T0* _er=NULL;
  2469. T0* _r=NULL;
  2470. int _i=0;
  2471. r522clear(((T522*)(oBC359require_collector)));
  2472. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  2473. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  2474. _i=1;
  2475. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  2476. _er=r522item(((T522*)(oBC359require_collector)),_i);
  2477. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  2478. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  2479. _r=r883runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  2480. /*IF*/if ((_r)!=((void*)(NULL))) {
  2481. {T343*n=malloc(sizeof(*n));
  2482. *n=M343;
  2483. r343from_runnable(n,_r);
  2484. _er=(T0*)n;
  2485. }
  2486. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  2487. /*]*/
  2488. /*IF*/if ((_ar)==((void*)(NULL))) {
  2489. _ar=se_ma522(1,_er);
  2490. }
  2491. else {
  2492. r522add_last(((T522*)_ar),_er);
  2493. }
  2494. /*FI*/}
  2495. /*FI*/}
  2496. /*FI*/_i=(_i)+(1);
  2497. }
  2498. /*IF*/if ((_ar)!=((void*)(NULL))) {
  2499. {T567*n=malloc(sizeof(*n));
  2500. *n=M567;
  2501. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  2502. /*]*/
  2503. R=(T0*)n;
  2504. }
  2505. }
  2506. /*FI*/}
  2507. /*FI*/return R;
  2508. }
  2509. /*No:EXTERNAL_PROCEDURE.result_type*/
  2510. /*No:EXTERNAL_PROCEDURE.fz_03*/
  2511. /*No:EXTERNAL_PROCEDURE.em1*/
  2512. /*No:EXTERNAL_PROCEDURE.obsolete_mark*/
  2513. /*No:EXTERNAL_PROCEDURE.set_clients*/
  2514. /*No:EXTERNAL_PROCEDURE.em2*/
  2515. /*No:EXTERNAL_PROCEDURE.names*/
  2516. /*No:EXTERNAL_PROCEDURE.require_assertion*/
  2517. /*No:EXTERNAL_PROCEDURE.code_ensure*/
  2518. int r883stupid_switch(T883* C,T0* a1,T0* a2){
  2519. int R=0;
  2520. R=X845stupid_switch((((T883*)C))->_native/*48*/,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T883*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  2521. return R;
  2522. }
  2523. void r883set_rescue_compound(T883* C,T0* a1){
  2524. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  2525. r883error(r883start_position(C),((T0*)ms6_368));
  2526. }
  2527. /*FI*/C->_rescue_compound=a1;
  2528. }
  2529. void r883make_external_routine(T883* C,T0* a1,T0* a2){
  2530. C->_native=a1;
  2531. C->_alias_string=a2;
  2532. }
  2533. int r883can_hide(T883* C,T0* a1,T0* a2){
  2534. int R=0;
  2535. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  2536. /*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  2537. r683add_position(X359start_position(a1));
  2538. r883error(r883start_position(C),((T0*)ms5_359));
  2539. }
  2540. /*FI*/}
  2541. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  2542. /*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  2543. r683add_position(X359start_position(a1));
  2544. r883error(r883start_position(C),((T0*)ms6_359));
  2545. }
  2546.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  2547. r683add_position(X359start_position(a1));
  2548. r883error(r883start_position(C),((T0*)ms7_359));
  2549. }
  2550. /*FI*/}
  2551. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2552. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  2553. /*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  2554. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  2555. r7append(((T7*)(oBC683explanation)),b1);
  2556. }/*]*/
  2557. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  2558. r7append(((T7*)(oBC683explanation)),b1);
  2559. }/*]*/
  2560. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  2561. }
  2562. /*FI*/}
  2563. /*FI*/}
  2564. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  2565. /*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  2566. /*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  2567. r683add_position(X359start_position(a1));
  2568. r683add_position(r883start_position(C));
  2569. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  2570. r7append(((T7*)(oBC683explanation)),b1);
  2571. }/*]*/
  2572. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  2573. r7append(((T7*)(oBC683explanation)),b1);
  2574. }/*]*/
  2575. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  2576. }
  2577. /*FI*/}
  2578. /*FI*/}
  2579. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  2580. return R;
  2581. }
  2582. /*No:EXTERNAL_PROCEDURE.header_comment*/
  2583. int r883is_merge_with(T883* C,T0* a1,T0* a2){
  2584. int R=0;
  2585. /*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  2586. /*IF*/if ((((((T883*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  2587. r683add_position(X359start_position(a1));
  2588. r883error(r883start_position(C),((T0*)ms2_359));
  2589. }
  2590. /*FI*/}
  2591. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  2592. /*IF*/if ((((((T883*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  2593. r683add_position(X359start_position(a1));
  2594. r883error(r883start_position(C),((T0*)ms3_359));
  2595. }
  2596.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T883*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  2597. r683add_position(X359start_position(a1));
  2598. r883error(r883start_position(C),((T0*)ms4_359));
  2599. }
  2600. /*FI*/}
  2601. /*FI*//*IF*/if (((((T883*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  2602. /*IF*/if (!(X291is_a_in((((T883*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  2603. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  2604. }
  2605. /*FI*/}
  2606. /*FI*//*IF*/if (((((T883*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  2607. /*IF*/if (!(r31is_a_in(((T31*)((((T883*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  2608. r683add_position(X359start_position(a1));
  2609. r883error(r883start_position(C),((T0*)ms12_359));
  2610. }
  2611. /*FI*/}
  2612. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  2613. return R;
  2614. }
  2615. /*No:EXTERNAL_PROCEDURE.fz_dot*/
  2616. /*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
  2617. /*No:EXTERNAL_PROCEDURE.first_name*/
  2618. /*No:EXTERNAL_PROCEDURE.clients*/
  2619. int r883use_current(T883* C){
  2620. int R=0;
  2621. R=X845use_current((((T883*)C))->_native/*48*/,(T0*)C);
  2622. return R;
  2623. }
  2624. void r883collect_for(T883* C,int a1){
  2625. /*IF*/if ((a1)==(1001)) {
  2626. /*IF*/if (((((T883*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  2627. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/))) {
  2628. r522add_last(((T522*)(oBC359require_collector)),(((T883*)C))->_require_assertion/*32*/);
  2629. }
  2630. /*FI*/}
  2631. /*FI*/}
  2632. else {
  2633. /*IF*/if (((((T883*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  2634. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T883*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  2635. /*]*/
  2636. r633add_into(((T633*)((((T883*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  2637. }
  2638. /*FI*/}
  2639. /*FI*/}
  2640. void r883error(T0* a1,T0* a2){
  2641. r683add_position(a1);
  2642. r683error(((T683*)(oBC364eh)),a2);
  2643. }
  2644. /*No:EXTERNAL_PROCEDURE.base_class*/
  2645. /*No:EXTERNAL_PROCEDURE.base_class_name*/
  2646.  
  2647.